; GDT描述符号
; 1 -> 基地址
; 2 -> 段界限
; 3 -> 属性

;----------------------------------------------------------------
;|63											              32|
;----------------------------------------------------------------
;|  段基址 |G|B|0|AV| 段界限     |1|DP|S|TYPE|     段基址       |
;| (24~31) | | | |L | (16~19)    | |L | |    |    (16~23)       |
;|--------------------------------------------------------------|
;|                               |                              |
;|         段基址(0~15)          |        段界限(0~15)          |    	
;----------------------------------------------------------------
;|31											               0|
;----------------------------------------------------------------


;------------------------------------
;  |B |  |A | LIMIT  |  |D  |  | TY |
;G |/ |0 |V |        |1 |P  |S | PE |
;  |D |  |L |        |  |L  |  |    |
;------------------------------------
;15 14 13 12 11     8 7  6 5 4  3  0|
;------------------------------------

;D/B(14)
DA_32		equ		4000h
DA_LIMIT_4K	equ		8000h	; 段界限粒度为 4K 字节

;DPL(5 ~ 6)
DA_DPL0		equ		00h
DA_DPL1		equ		20h
DA_DPL2		equ		40h
DA_DPL3		equ		60h

;存储段(0 ~ 4, 7)
DA_DR		equ		90h		;存在的只读
DA_DRW		equ		92h		;存在的读写
DA_DRWA		equ		93h		;存在的已访问可读写
DA_C		equ		98h		;存在的可执行可读
DA_CR		equ		9Ah		;存在的可执行可读写
DA_CCO		equ		9Ch		;存在的只执行一致
DA_CCOR		equ		9Eh		;存在的可执行可读一致


;系统(0 ~ 4, 7)
DA_LDT		equ		82h		;局部描述符表
DA_TaskGate equ		85h		;任务门
DA_386TSS	equ		89h		;任务状态段
DA_386CGate equ		8Ch		;调用门
DA_386IGate equ		8Eh		;中断门
DA_386TGate	equ		8Fh		;陷阱门

;---------------------------------------------------------;
;                        选择子						      ;
;---------------------------------------------------------;
SA_RPL0		EQU	0	; ┓
SA_RPL1		EQU	1	; ┣ RPL
SA_RPL2		EQU	2	; ┃
SA_RPL3		EQU	3	; ┛

SA_TIG		EQU	0	; ┓TI
SA_TIL		EQU	4	; ┛

;---------------------------------------------------------;
;					页表项(0~2)							  ;
;---------------------------------------------------------;
PG_P		EQU	1	; 页存在属性位
PG_RWR		EQU	0	; R/W 属性位值, 读/执行
PG_RWW		EQU	2	; R/W 属性位值, 读/写/执行
PG_USS		EQU	0	; U/S 属性位值, 系统级
PG_USU		EQU	4	; U/S 属性位值, 用户级

;---------------------------------------------------------;
;														  ;
;---------------------------------------------------------;

%macro Descriptor 3
	dw	%2 & 0FFFFh							;段界限  0 ~ 15 (16位)
	dw	%1 & 0FFFFh							;段基址  0 ~ 15 (16位)
	db	(%1 >> 16) & 0FFh					;段基址 16 ~ 23 (08位)
	dw	((%2 >> 8) & 0F00h) | (%3 & 0F0FFh) ;属性位
	db	(%1 >> 24) & 0FFh					;段基址 24 ~ 31 (08位)
%endmacro


